﻿namespace Token.Module;

public abstract class TModule : 
    ITModule,
    IApplication
{
    public virtual Task InitializeAsync(ServiceConfigurationOptions options)
    {
        return Task.CompletedTask;
    }

    public virtual void Initialize(ServiceConfigurationOptions options)
    {
    }

    public virtual Task ConfigureServicesAsync(ServiceConfigurationOptions options)
    {
        return Task.CompletedTask;
    }

    public virtual void ConfigureServices(ServiceConfigurationOptions options)
    {
        
    }

    public virtual Task OnApplicationShutdownAsync(ApplicationShutdownOptions context)
    {
        return Task.CompletedTask;
    }

    public virtual void OnApplicationShutdown(ApplicationShutdownOptions context)
    {
    }

    public virtual Task OnApplicationAsync(ApplicationShutdownOptions context)
    {
        return Task.CompletedTask;
    }

    public virtual void OnApplication(ApplicationShutdownOptions context)
    {
    }

    public virtual Task ShutdownAsync(ApplicationShutdownOptions context)
    {
        return Task.CompletedTask;
    }

    public virtual void Shutdown(ApplicationShutdownOptions context)
    {
    }
}